package cn.djb.day10;


/**
 * 给定一个数字，我们按照如下规则把它翻译为字符串：0 翻译成 “a” ，1 翻译成 “b”，……，11 翻译成 “l”，……，25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数，用来计算一个数字有多少种不同的翻译方法。
 */
class Solution_2 {

    public int lengthOfLongestSubstring(String s) {

        char[] chars = s.toCharArray();
        int length = chars.length;
        if (length == 0) return 0;
        int max = 1;
        String[] dp = new String[length];
        dp[0] = String.valueOf(chars[0]);
        for (int i = 1; i < length; i++) {
            String q = dp[i - 1];
            int index = q.indexOf(chars[i]);
            if (index > -1) {
                if (index < q.length() - 1) {
                    dp[i] = q.substring(index+1) + chars[i];
                }else {
                    dp[i] = String.valueOf(chars[i]);
                }

            } else {
                dp[i] = q + chars[i];
            }
            if (max < dp[i].length()) {
                max = dp[i].length();
            }

        }
        return max;


    }

}